<?php

namespace App\Http\Controllers;

use App\Repositories\BarRepository;
use App\Repositories\FooRepository;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class FooController extends Controller
{
    /*
    private $repository;
    // 比构造函数注入更好的方法是直接在具体方法中注入
    public function __construct(FooRepository $repository) {
        $this->repository = $repository;
    }
    */

    public function getFoo(FooRepository $repository) {
        return $repository->get();
    }

    /*
    public function getFoo() {
        // 这种方式可以实现Controller中调用FooRepository中的方法, 但是不够优雅
        // 使用New关键字还要注意FooRepository中的各种依赖
        // 比这种方法好一点的是在构造函数中注入
//        $repository = new \App\Repositories\FooRepository();
//        return $repository->get();
        return $this->repository->get();
    }
    */

    public function getBar(BarRepository $repository) {
        return $repository->get();
    }
}
